perm filename DRIVE.FAI[SYS,HE]8 blob
sn#087028 filedate 1974-02-15 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00007 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE DRIVE
C00004 00003 DOIT: MOVE 1,-1(17)
C00005 00004 PACK: (INTEGER PTR,TIMEREFERENCE REAL SOLN)
C00007 00005 ACT: HRLI MASTER
C00008 00006 THIS IS THE 32 WORD MAIL MESSAGE
C00009 00007 ISSERV: 0
C00011 ENDMK
C⊗;
TITLE DRIVE
INTERNAL DOIT,ARMPOS,ARM.JOINT,PACK,PSTRING
INTERNAL HANDFN,ARMFN,ARMPROCEED
EXTERNAL ARM.VECTOR,ARM.MOTION,ARM.STATUS,ARM.SEG
EXTERNAL ARM.WAIT,FELT,STOP.ON,WAIT.STRING
EXTERNAL JOBAPR,UNDERF
EXTERNAL ARM.MESSAGE,JOBSA
BLUE←←0
P←17
MASTER←←16661
IFN BLUE,<MASTER←←MASTER+1>
RELOC←←40
TOUCH←←10
HOLD←←20
ARM.JOINT:MOVEI
SKIPA
ARMPOS: MOVEI 1
ONCE: MOVE 1,ARM.VECTOR
MOVEM 1,THETA
MOVE 1,WAIT.STRING
MOVEM 1,ETOR
MOVE 1,FELT
MOVEM 1,NERVES
CALLI 1,30
HRRM 1,SEGJOB
CALLI 1,400021
HRLM 1,SEGJOB
MOVEI 1,ARM.STATUS
MOVEM 1,STATUS
MOVEI 1,ARM.SEG
MOVEM 1,SEGMENT
MOVEI 1,ARM.MOTION
HRRM 1,NAME
MOVEI 1,ARM.WAIT
HRLM 1,NAME
HRRZ 1,SEGJOB
CALLI 1,24
MOVE 3,[POINT 6,0,35]
MOVE 4,[POINT 7,MYPPN-1,35]
MOVEI 7,1
I5: MOVEI 5,2
C7: ILDB 6,3
ADDI 6,40
CAIE 6,40
IDPB 6,4
SOJGE 5,C7
SOJGE 7,[MOVEI 6,"/"
IDPB 6,4
JRST I5]
MOVEI 6,15
IDPB 6,4
MOVEI 6,12
IDPB 6,4
MOVE 1,[JRST ACT]
MOVEM 1,ONCE
JRST ACT
REQU:
IFE BLUE,<SIXBIT/ARM-Y/>
IFN BLUE,<SIXBIT/ARM-B/>
EXE
MYPPN: 0
0
DOIT: MOVE 1,-1(17)
MOVEM 1,FILE
MOVEM 1,ARM.WAIT
MOVE 1,-2(17)
HRRZM 1,BAND
MOVEI 2
MOVE 1,-3(P)
JUMPN 1,.+2
CALLI 1,400071
MOVEM 1,PPPN
SEN1: PUSHJ P,ACT
RETM: SUB 17,[XWD 4,4]
JRST @4(17)
ARMFN: MOVEI 3+HOLD+RELOC
HRL 1,ARM.ME
HRRI 1,ARGS
BLT 1,ARGS+24
MOVE 1,-1(17)
DPB 1,[POINT 9,0,26]
PUSHJ P,ACT
SUB P,[XWD 2,2]
JRST @2(P)
HANDFN: MOVEI 3+HOLD
MOVE 1,ARM.ME
MOVE 1,(1)
MOVEM 1,ARGS
JRST ACT
ARMPRO: MOVE 1,-1(P)
MOVEM 1,ARGS
MOVEI 3
PUSHJ P,ACT
SUB P,[XWD 2,2]
JRST @2(P)
PACK: ;(INTEGER PTR,TIME;REFERENCE REAL SOLN);
MOVE 10,-3(P)
MOVE 1,-2(P)
MOVEM 1,(10) ;TIME
HRLZ 5,-1(P)
BLT 5,4 ;PICK UP A0-A4
MOVM 6,4 ;WHERE THE LARGEST WILL END UP
MOVEI 5,3
L1: MOVM 7,(5)
CAMGE 6,7
MOVE 6,7
SOJGE 5,L1
TDZ 6,[XWD 777,777777] ;THE LARGEST IS NOW IN 6
ADD 6,[XWD 12000,0] ;THE EXPONENT TO PUT FRACTION AND SIGN INTO RT. HALF
HLLM 6,-1(10)
UFA 6,4
HRLM 7,-3(10)
UFA 6,3
HRRM 7,-3(10)
UFA 6,2
HRLM 7,-2(10)
UFA 6,1
HRRM 7,-2(10)
UFA 6,0
HRRM 7,-1(10)
SUB P,[XWD 4,4]
JRST @4(P)
PSTRING: ;(PTR,S)
MOVE 1,[POINT 7,0,35]
HRR 1,-1(P) ;POINTS TO LOC IN COEFF
POP 16,3 ;COUNT
POP 16,2 ;STRING POINTER
HRLI 2,0 ;CLEAR LH OF COUNT
JUMPE 2,[
SETZ 1,
JRST PLB]
PL: ILDB 4,3
IDPB 4,1
SOJG 2,PL
MOVEI 4,0
IDPB 4,1
HRLI 1,0 ;LAST WORD
HRRZ 2,-1(P) ;FIRST WORD
SUBI 1,(2)
PLB: HRRZ 2,-1(P)
MOVEM 1,(2) ;WORD COUNT
SUB P,[XWD 2,2]
JRST @2(P)
ACT: HRLI MASTER
SETZM ARM.STATUS
SKIPE STOP.ON
TRO TOUCH
MOVEM EXE
MOVE 1,ARM.WAIT
MOVEM 1,ARM.MOTION
SETZM ARM.WAIT
CALL 1,[SIXBIT/INTENS/]
MOVEM 1,ENBSAV#
SETZ 1,
CALL 1,[SIXBIT/INTENB/] ;TURN OFF INTERRUPTS
MOVE 1,JOBAPR
MOVEM 1,APRSAV#
MOVEI 1,[CALL[SIXBIT/DISMIS/]]
MOVEM 1,JOBAPR
JSR ISSERV
SEND REQU
JRST[ MOVEI 1,2
CALLI 1,31
JRST .-1]
HRLZI 1,40
CALL 1,[SIXBIT/IENBW/]
MOVE 1,APRSAV
MOVEM 1,JOBAPR
MOVE 1,ENBSAV
CALL 1,[SIXBIT/INTENB/]
SKIPE @WAIT.STRING
OUTSTR @WAIT.STRING
POPJ P,
; THIS IS THE 32 WORD MAIL MESSAGE
EXE: XWD MASTER,0 ;18-27 NARGS, 30 RELOC, 31 HOLD, 32 SOTCH, 33-35 EXE
;0 READ IN OCTAL
;1 READ IN DECIMAL
;2 EXECUTE FILE
;3 EXECUTE FUNCTION
FILE: 0
PPPN: 0
BAND: 0
SEGJOB: 0
NAME: 0
STATUS: 0
SEGMENT:0
NERVES: 0
ETOR: 0
THETA: 0
ARGS: BLOCK =6
STRING: BLOCK =15
ISSERV: 0
SEE: MOVE 1,REQU
CALLI 1,400043
JRST[ CAIE 1,1
JRST[OUTSTR[ASCIZ/THERE ARE TOO MANY SERVOS ALREADY
PLEASE KILL THEM ALL BUT ONE AND TYPE RETURN
/]
INCHWL
INCHWL
JRST SEE]
PTYGET 10
JRST[ OUTSTR[ASCIZ/NO PTYS AVAILABLE
/]
CALLI 12]
HRLI 10,0
MOVEM 10,PTYLIN#
GJ: MOVEI 11,[ASCIZ/L
/]
PTWRS7 10
WH: PTRD1W 10
CAIE 11,"#"
JRST[ CAIE 11,"?"
JRST WH
OUTSTR[ASCIZ\NO JOB FOR SERVO
TYPE C/R TO TRY AGAIN
\]
INCHWL
INCHWL
JRST GJ]
MOVEI 11,MYPPN
PTWRS7 10
WCC: PTRD1W 10
CAIE 11,"↑"
JRST WCC
IFE BLUE,<
MOVEI 11,[ASCIZ/R YELO
/]
>
IFN BLUE,<
MOVEI 11,[ASCIZ/R BLU
/]
>
PTWRS7 10
WCC2: PTRD1W 10
CAIE 11,"!"
JRST WCC2
JRST @ISSERV]
GOTONE: JRST @ISSERV
END